package com.snapan.dao;

import com.snapan.entity.ShareFile;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 分享数据访问层
 */
@Mapper
public interface ShareDao {
    
    /**
     * 插入分享记录
     */
    int insert(ShareFile shareFile);
    
    /**
     * 更新分享记录
     */
    int update(ShareFile shareFile);
    
    /**
     * 删除分享记录
     */
    int delete(Long id);
    
    /**
     * 根据ID获取分享记录
     */
    ShareFile getById(Long id);
    
    /**
     * 根据token获取分享记录
     */
    ShareFile getByToken(String token);
    
    /**
     * 获取用户的分享列表
     */
    List<ShareFile> getShareList(@Param("userId") int userId, 
                                 @Param("offset") int offset, 
                                 @Param("pageSize") int pageSize);
    
    /**
     * 统计用户的分享数量
     */
    int countByUserId(int userId);
    
    /**
     * 记录分享访问
     */
    int recordAccess(String token);

    List<ShareFile> selectAllValid();
}











